Motor control of a drain cleaning machine

ABSTRACT

A drain cleaning machine includes a brushless direct current (DC) motor configured to rotate a snake about the snake axis. An electronic processor is configured to control power switching elements to drive the brushless DC motor. In a first operating range when a load experienced by the brushless DC motor is less than or equal to a predetermined load, the electronic processor is configured to control the power switching elements to drive the brushless DC motor at an approximately constant speed regardless of the load experienced by the brushless DC motor. In a second operating range when the load experienced by the brushless DC motor is greater than the predetermined load, the electronic processor is configured to control the power switching elements to drive the brushless DC motor at a decreasing speed as the load experienced by the brushless DC motor increases.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/053,004, filed under 35 U.S.C. § 371(c) on Nov. 4, 2020, now U.S.Pat. No. 11,396,034, which is a national stage entry of InternationalApplication No. PCT/US2020/051813, filed on Sep. 21, 2020, which claimsthe benefit of U.S. Provisional Patent Application No. 62/907,828, filedon Sep. 30, 2019, the entire content of all of which is herebyincorporated by reference.

FIELD OF THE INVENTION

The present invention relates to motor control of drain cleaningmachines, and more particularly to motor control of sectional draincleaning machines.

BACKGROUND OF THE INVENTION

Drum-type and sectional drain cleaning machines are both used to feed asnake (e.g., a cable or spring) through a drain to clean the drain.Drum-type machines rotate a drum containing the snake to feed the snakeinto the drain. In sectional drain cleaning machines, the snake is notstored in the machine and is instead fed into the machine.

SUMMARY OF THE INVENTION

One embodiment includes a drain cleaning machine for moving a snake in adrain. The drain cleaning machine may include a snake passage defining asnake axis, a brushless direct current (DC) motor configured to rotate asnake about the snake axis, and power switching elements configured tocontrol an amount of current provided to the brushless DC motor. Thedrain cleaning machine may further include a motor position sensor andan electronic processor coupled to the power switching elements and tothe motor position sensor. The electronic processor may be configured toreceive motor positional information from the motor position sensor andcontrol the power switching elements to drive the brushless DC motorbased at least partially on the motor positional information. In a firstoperating range when a load experienced by the brushless DC motor isless than or equal to a predetermined load, the electronic processor maybe configured to control the power switching elements to drive thebrushless DC motor at an approximately constant speed regardless of theload experienced by the brushless DC motor. In a second operating rangewhen the load experienced by the brushless DC motor is greater than thepredetermined load, the electronic processor may be configured tocontrol the power switching elements to drive the brushless DC motor ata decreasing speed as the load experienced by the brushless DC motorincreases.

Another embodiment includes a method for controlling a drain cleaningmachine to move a snake in a drain. The method may include determining,with an electronic processor of the drain cleaning machine, motorpositional information of a brushless DC motor of the drain cleaningmachine. The brushless DC motor may be configured to rotate a snakeabout a snake axis defined by a snake passage. The method may furtherinclude controlling, with the electronic processor, power switchingelements to drive the brushless DC motor based at least partially on themotor positional information. The power switching elements may beconfigured to control an amount of current provided to the brushless DCmotor. The method may further include in a first operating range when aload experienced by the brushless DC motor is less than or equal to apredetermined load, controlling, with the electronic processor, thepower switching elements to drive the brushless DC motor at anapproximately constant speed regardless of the load experienced by thebrushless DC motor. The method may further include in a second operatingrange when the load experienced by the brushless DC motor is greaterthan the predetermined load, controlling, with the electronic processor,the power switching elements to drive the brushless DC motor at adecreasing speed as the load experienced by the brushless DC motorincreases.

Another embodiment includes a drain cleaning machine for moving a snakein a drain. The drain cleaning machine may include a snake passagedefining a snake axis, a brushless direct current (DC) motor configuredto rotate a snake about the snake axis, and power switching elementsconfigured to control an amount of current provided to the brushless DCmotor. The drain cleaning machine may further include a motor positionsensor and an electronic processor coupled to the power switchingelements and to the motor position sensor. The electronic processor maybe configured to receive motor positional information from the motorposition sensor and control the power switching elements to drive thebrushless DC motor based at least partially on the motor positionalinformation. The electronic processor may also be configured to controlthe power switching elements to drive the brushless DC motor to operateat one or more user selectable parameters. The one or more userselectable parameters may include a speed that is user selectable, anoutput torque that is user selectable, or both.

Other features and aspects of the invention will become apparent byconsideration of the following detailed description and accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a drain cleaning machine according toone example embodiment.

FIG. 2 is a perspective view of the drain cleaning machine of FIG. 1 ,with portions removed.

FIG. 3 is a plan view of a push plate of the drain cleaning machine ofFIG. 1 .

FIG. 4 is a plan view of a selection plate of the drain cleaning machineof FIG. 1 .

FIG. 5 is a plan view of the push plate and the selection plate of thedrain cleaning machine of FIG. 1 , with the selection plate in atranslate position.

FIG. 6 is a cross-sectional view of the drain cleaning machine takenalong section line 6-6 of FIG. 1 .

FIG. 7 is a cross-sectional view of the drain cleaning machine takenalong section line 7-7 of FIG. 1 .

FIG. 8 is an enlarged view of a portion of the cross-section of thedrain cleaning machine of FIG. 7 .

FIG. 9 is a perspective, cross-sectional view of a portion of the draincleaning machine taken along section line 7-7 of FIG. 1 .

FIG. 10 is a cross-sectional view of a translate mechanism of the draincleaning machine taken along section line 10-10 of FIG. 2 .

FIG. 11 is a cross-sectional view of the translate mechanism of thedrain cleaning machine taken along section line 11-11 of FIG. 2 .

FIG. 12 is a plan view of the push plate and the selection plate of thedrain cleaning machine of FIG. 1 , with the selection plate in a radialdrive position.

FIG. 13 is a cross-sectional view of a portion of the drain cleaningmachine of FIG. 1 .

FIG. 14 is a cross sectional view of a portion of the drain cleaningmachine taken along section line 14-14 of FIG. 13 .

FIG. 15 is a perspective, cross-sectional view of the portion of thedrain cleaning machine of FIG. 14 .

FIG. 16 is a cross-sectional view of part of the drain cleaning machineshown in FIG. 14 .

FIG. 17 is a cross-sectional view of a portion of the drain cleaningmachine of FIG. 1 , illustrating a tensioning assembly.

FIG. 18 is a perspective view of the drain cleaning machine of FIG. 1including a housing and a frame configured to support the drain cleaningmachine according to one example embodiment.

FIG. 19 is a block diagram of the drain cleaning machine of FIG. 1according to one example embodiment.

FIG. 20 is a block diagram of a wireless communication device of thedrain cleaning machine of FIG. 1 according to one example embodiment.

FIG. 21 illustrates a communication system including the drain cleaningmachine of FIG. 18 according to one example embodiment.

FIG. 22 is a block diagram of an external device of the communicationsystem of FIG. 21 according to one example embodiment.

FIG. 23 illustrates a graph of a speed versus torque curve for anexample alternating current (AC) induction motor.

FIG. 24 illustrates a graph of a speed versus torque curve for an idealbrushless direct current (DC) motor.

FIG. 25 illustrates a graph of the speed versus torque curve of FIG. 23for the example AC induction motor compared to a speed versus torquecurve of an ideal brushless DC motor that is comparable in size to theexample AC induction motor.

FIG. 26 illustrates a graph of the speed versus torque curve of FIG. 23for the example AC induction motor compared to a speed versus torquecurve of a speed-clipped ideal brushless DC motor that is comparable insize to the example AC induction motor and that is designed for slightoverspeed.

FIG. 27 is a flowchart of a method implemented by an electronicprocessor of the drain cleaning machine of FIG. 1 to electronicallycontrol a speed of a brushless DC motor using speed clipping accordingto one example embodiment

FIG. 28 illustrates a user interface that may be displayed on a touchdisplay of the external device of FIG. 22 according to one embodiment.

FIG. 29 illustrates another a user interface that may be displayed onthe touch display of the external device of FIG. 22 according to oneembodiment.

DETAILED DESCRIPTION

Before any embodiments are explained in detail, it is to be understoodthat the embodiments are not limited in their application to the detailsof construction and the arrangement of components set forth in thefollowing description or illustrated in the following drawings. Theembodiments are capable of being practiced or of being carried out invarious ways. Also, it is to be understood that the phraseology andterminology used herein is for the purpose of description and should notbe regarded as limiting. The use of “including,” “comprising” or“having” and variations thereof herein is meant to encompass the itemslisted thereafter and equivalents thereof as well as additional items.The terms “mounted,” “connected” and “coupled” are used broadly andencompass both direct and indirect mounting, connecting and coupling.Further, “connected” and “coupled” are not restricted to physical ormechanical connections or couplings, and can include electricalconnections or couplings, whether direct or indirect.

It should be noted that a plurality of hardware and software baseddevices, as well as a plurality of different structural components maybe utilized to implement the embodiments. Furthermore, and as describedin subsequent paragraphs, the specific configurations illustrated in thedrawings are intended to exemplify embodiments and that otheralternative configurations are possible. The terms “processor” “centralprocessing unit” and “CPU” are interchangeable unless otherwise stated.Where the terms “processor” or “central processing unit” or “CPU” areused as identifying a unit performing specific functions, it should beunderstood that, unless otherwise stated, those functions can be carriedout by a single processor, or multiple processors arranged in any form,including parallel processors, serial processors, tandem processors orcloud processing/cloud computing configurations.

Relative terminology, such as, for example, “about,” “approximately,”“substantially,” etc., used in connection with a quantity or conditionwould be understood by those of ordinary skill to be inclusive of thestated value and has the meaning dictated by the context (e.g., the termincludes at least the degree of error associated with the measurementaccuracy, tolerances [e.g., manufacturing, assembly, use, etc.]associated with the particular value, etc.). Such terminology shouldalso be considered as disclosing the range defined by the absolutevalues of the two endpoints. For example, the expression “from about 2to about 4” also discloses the range “from 2 to 4”. The relativeterminology may refer to plus or minus a percentage (e.g., 1%, 5%, 10%,or more) of an indicated value. When the term “and/or” is used in thisapplication, it is intended to include any combination of the listedcomponents. For example, if a component includes A and/or B, thecomponent may include solely A, solely B, or A and B.

As shown in FIGS. 1 and 2 , a drain cleaning machine 10 includes aninner frame 14, a snake outlet tube 18 and snake inlet tube 20collectively defining a snake axis 22, a translate mechanism 26, aradial drive mechanism 30, and a motor 34 to rotate the feed and radialdrive mechanisms 26, 30 about the snake axis 22. In the illustratedembodiment, the motor 34 is operatively coupled to and rotates the feedand radial drive mechanisms 26, 30 via a belt 38. In some embodiments,the drain cleaning machine 10 is a direct current (DC) battery powereddrain cleaning machine in which the motor 34 is powered by a battery orbattery pack as described below. The translate mechanism 26 is used totranslate a snake (e.g., a cable or spring) (not shown) along the snakeaxis 22 into or out of a drain. The radial drive mechanism 30 is used tospin the snake about the snake axis 22.

The drain cleaning machine 10 also includes a selection mechanism 40including an actuating lever 42, a push plate 62, and a selection plate82. The actuating lever 42 pivots on the inner frame 14 about a pivotpoint 46 between an activated position shown in FIG. 2 and a deactivatedposition shown in FIG. 1 . In some embodiments, the actuating lever 42activates the motor 34 when set to the activated position. Inalternative embodiments, instead of the actuating lever 42, a separateswitch or actuator, such as a foot pedal, can be used to activate themotor 34. As described in further detail below, the selection mechanism40 allows an operator to switch between selecting the translatemechanism 26 or the radial drive mechanism 30 in manipulating the snake.The actuating lever 42 has a pair of arms 50 respectively coupled to apair of pull linkages 54. The pull linkages 54 are coupled to a pair ofarms 58 of the push plate 62 that can translate in a direction parallelto the snake axis 22, as explained in further detail below and in U.S.patent application Ser. No. 16/535,321, the entire contents of which areherein incorporated by reference.

As shown in FIG. 3 , the push plate 62 includes a plurality of outerapertures 66 and a plurality of inner apertures 70. The outer apertures66 and inner apertures 70 are arranged parallel to the snake axis 22. Inthe illustrated embodiment, the push plate 62 includes three outerapertures 66 and three inner apertures 70. In other embodiments, thepush plate 62 may include more or fewer outer and inner apertures 66,70. The three inner apertures 70 extend from a central aperture 74 toaccommodate the snake outlet tube 18 and to allow the push plate 62 totranslate along the snake outlet tube 18.

With reference to FIG. 4 , the selection plate 82 supports a pluralityof outer pins 86 and a plurality of inner pins 90 that are also part ofthe selection mechanism 40. The selection plate 82 includes a finger 92to allow an operator to rotate the selection plate between a translateposition shown in FIGS. 5 and 6 and a radial drive position shown inFIGS. 4, 12, and 13 . When the selection plate 82 is in the translateposition, the inner pins 90 are aligned with the inner apertures 70 ofthe push plate 62, and the outer pins 86 are not aligned with the outerapertures 66, as shown in FIG. 5 . When the selection plate 82 is in theradial drive position, the outer pins 86 are aligned with the outerapertures 66 of the push plate 62, and the inner pins 90 are not alignedwith the inner apertures 70, as shown in FIG. 12 . As explained infurther detail below, when the selection plate 82 is in the translateposition, the selection mechanism 40 can switch the translate mechanism26 from a disengaged state to an engaged state. When the selection plate82 is in the radial drive position, the selection mechanism 40 canswitch the translate mechanism 26 from a disengaged state to an engagedstate.

With reference to FIGS. 2, 6, 7, 9, 13 and 14 , the drain cleaningmachine 10 also includes an outer thrust assembly 94 and an inner thrustassembly 98. Both the outer and inner thrust assemblies 94, 98 aresupported by the snake outlet tube 18. In other embodiments, the outerand inner thrust assemblies 94, 98 are not supported by the snake outlettube 18, and instead are respectively supported by outer push rods 134and inner push rods 166, described below. The outer thrust assembly 94includes a first race 102, a second race 106, and an outer thrustbearing 110 with a plurality of rollers in between the first and secondraces 102, 106. The inner thrust assembly 98 includes a first race 114,a second race 118, and an inner thrust bearing 122 with a plurality ofrollers in between the first and second races 114, 118. With referenceto FIGS. 6 and 14 , the outer pins 86 of the selection mechanism 40 arearranged in bores 126 of the first race 102 of the outer thrust assembly94. With reference to FIGS. 7 and 13 , the inner pins 90 of theselection mechanism 40 are arranged in bores 130 of the first race 114of the inner thrust assembly 98.

With reference to FIGS. 7 and 9 , a pair of outer push rods 134 isarranged in bores 138 of the second race 106 of the outer thrustassembly 94. The outer push rods 134 respectively extend through bores142 of a rotating shell 146 that supports both the feed and radial drivemechanisms 26, 30, such that both the translate and radial drivemechanism 26, 30 are rotatable with the rotating shell 146. The outerpush rods 134 are both abuttable against a push cone 150 of thetranslate mechanism 26. As shown in FIGS. 6-8 , a spring 154 is arrangedagainst a spring seat 158 within each bore 142 of the rotating shell146. The springs 154 are each biased against a shoulder 162 of eachouter push rod 134, such that each of the push rods 134 is biased awayfrom the push cone 150 and toward the second race 106 of the outerthrust assembly 94.

With reference to FIGS. 14-16 , a pair of inner push rods 166 isarranged in bores 170 of the second race 118 of the inner thrustassembly 98. The inner push rods 166 respectively extend through bores174 in the rotating shell 146 and are respectively abuttable against afirst collet 178 and a second collet 180 of the radial drive mechanism30. The collets 178, 180 are arranged in the rotating shell 146 forrotation therewith and are translatable within the rotating shell 146,as described in further detail below. As shown in FIGS. 15 and 16 , aspring 182 is secured between each collet 178, 180 and the rotatingshell 146, such that each collet 178, 180 is biased toward itsrespective inner push rod 166 and away from a respective cross pin 186of the radial drive mechanism 30.

Each collet 178, 180 has a sloped face 190 that is arranged at an acuteangle α with respect to the snake axis 22 and is engageable with thecross pin 186. At the edge of the sloped face 190, each collet 178, 180includes a shoulder 192. As explained in further detail below, when thecollets 178, 180 are moved toward the snake axis 22, the radial drivemechanism 30 is in an engaged state, as shown in FIG. 16 . When thecollets 178, 180 are moved by the springs 182 away from the snake axis22, the radial drive mechanism 30 is in a disengaged state, as shown inFIGS. 14 and 15 .

In some embodiments, the springs 182 may be omitted. In theseembodiments, when translate mechanism 26 is engaged and the radial drivemechanism 30 is not engaged, the centrifugal force experienced by thecollets 178, 180 during rotation of the rotating shell 146 causes thecollets 178 to move away from the snake axis 22. Thus, springs 182 arenot required to inhibit the collets 178, 180 from engaging the snakewhen translate mechanism 26 is engaged and the radial drive mechanism 30is not engaged.

With reference to FIGS. 1, 2, 7 and 9-11 , the push cone 150 is arrangedwithin the rotating shell 146 and coupled for rotation therewith. Thepush cone 150 is translatable in a direction parallel to the snake axis22 within the rotating shell 146 along a plurality of guide rods 198(FIGS. 10 and 11 ) fixed along the length of the rotating shell 146. Thepush cone 150 has an inner face 202 whose inner diameter increases whenmoving in a direction away from the rotating shell 146. Thus, the innerface 202 is arranged at an acute angle β with respect to the snake axis22, as shown in FIG. 7 .

The translate mechanism 26 also includes a plurality of wheel collets206 arranged within the rotating shell 146. Each wheel collet 206includes a first face 210 that is pushable by the inner face 202 of thepush cone 150 and is arranged at the acute angle β with respect to thesnake axis 22. Each wheel collet 206 includes an opposite second face214 arranged at an acute angle γ with respect to the snake axis 22 andmoveable along an inner face 218 of the rotating shell 146, which isalso arranged at the acute angle γ with respect to the snake axis 22.

As shown in FIG. 10 , the wheel collets 206 each include a radiallyoutward-extending key 222 that fits within keyways 226 of the push cone150 and keyways 230 of the rotating shell 146, such that the colletsrotate with the push cone 150 and rotating shell 146. A pin 234 isarranged between each pair of adjacent wheel collets 206, and acompression spring 238 is arranged around each pin 234 and seatedagainst the adjacent wheel collets 206, such that each pair of adjacentwheel collets 206 are biased away from each other by the spring 238.Each wheel collet 206 rotatably supports a wheel 242, or radial bearing,having a wheel axis 246. As shown in FIGS. 7, 9 and 11 , the wheel axes246 are skewed (i.e., non-parallel) with each other, and the wheel axes246 are skewed (i.e., non-parallel) with the snake axis 22. As explainedin further detail below, when the translate mechanism 26 is in anengaged state, the wheel collets 206 and wheels 242 are moved toward thesnake axis 22. When the translate mechanism 26 is in a disengaged state,the wheel collets 206 and wheels 242 are allowed to be biased away fromeach other, and thus away from the snake axis 22.

With reference to FIG. 17 , the drain cleaning machine 10 also includesa first pulley 250 to transmit torque from the motor 34 to the rotatingshell 146 via the belt 38. Specifically, the belt 38 engages with asecond pulley 254 fixed on the rotating shell 146 of the radial drivemechanism 30. The drain cleaning machine 10 also includes a tensioningassembly 258 for allowing the belt 38 to be installed and tensioned onfirst pulley 250. A pair of first support members 262 couple thetensioning assembly 258 to the frame 14. The tensioning assembly 258includes a pair compression springs 266 (one on each side), respectivelyset within bores 270 respectively defined in the first support members262. The springs 266 bias a second support member 274 of the tensioningassembly 258, which supports the motor 34 and first pulley 250, awayfrom the first support members 262. The tensioning assembly 258 alsoincludes a pair of shoulder bolts 278 threaded within each first supportmember 262 and respectively extending through the second support member274. The tensioning assembly 258 further includes a pair of set screws282 (one on each side), which are respectively threaded through thesecond support member 274 into the bores 270 of the first supportmembers 262. A lock nut 286 threads onto each set screw 282.

Installation of the Belt 38

In order to install and tension the belt 38 onto the drain cleaningmachine 10, the belt 38 is initially off the first pulley 250, but needsto be installed. To install the belt 38, an operator moves the secondsupport member 274 toward the first support members 262, therebycompressing the springs 266 and moving the first pulley 250 toward thesecond pulley 254, allowing clearance for the belt 38 to be slipped onthe first pulley 250. Prior to slipping on the belt 38 and while stillholding the second support member 274 toward the first support members262 to compress springs 266, the shoulder bolts 278 are installedthrough the second support member 274 and first support members 262 andthreaded into the first support members 262. The belt 38 is then slippedon the first pulley 250, and the second support member 272 is thenreleased to allow the springs 266 to expand and push the second supportmember 272 away from the first support members 262. This causes the belt38 to become taut as the first pulley 250 is moved away from the secondpulley 254. The set screws 282 are then threaded through the secondsupport member 272 and into the bores 270 of the first support members262 until the set screws 282 touch a seat 290 of the bores 270. The locknuts 286 are then threaded onto the set screws 282 to prevent the belt38 from falling off the first pulley 250 in case, for example, the draincleaning machine 10 is dropped. In other embodiments, the set screws 282are not used, and the second support members 274 are respectivelycoupled to the first support members 262 by the shoulder bolts 278.

Selection and Operation of the Translate Mechanism 26

When an operator desires to feed a snake into a drain, the operatorfirst places the snake through the snake inlet tube 20 of the draincleaning machine 10 until the snake protrudes from the snake outlet tube18 and is arranged within the inlet of the drain. The operator thenrotates the selection plate 82 to the translate position, as shown inFIGS. 5 and 6 . Rotation of the selection plate 82 to the translateposition also causes the outer and inner pin 86, 90, and thus the outerthrust assembly 94, the inner thrust assembly 98, the radial drivemechanism 30, and the translate mechanism 26 to all co-rotate with theselection plate 82 about the snake axis 22. The operator then pivots theactuating lever 42 from the deactivated position of FIG. 1 to theactivated position of FIG. 2 , causing the arms 50 to pivot and thelinkage members 54 to pull the arms 58 of the push plate 62. The arms 58translate within windows 294 of the frame 14, causing the push plate 62to move toward the selection plate 82. The arms 58 within windows 294also prevent the push plate 62 from rotating with respect to the innerframe 14 and snake inlet tube 20. Because the selection plate 82 is inthe translate position, the inner pins 90 are aligned with the innerapertures 70 of the push plate 62 and the outer pins 86 are not alignedwith the outer apertures 66, as shown in FIG. 5 .

As the push plate 62 moves toward the selection plate 82, the inner pins90 slip through the inner apertures 70 of the push plate 62, while theouter pins 86 are pushed by the push plate 62 toward the first race 102of the outer thrust assembly 94, as shown in FIG. 6 . Thus, the outerpins 86 push the outer thrust assembly 94, which in turn pushes theouter push rods 134 against the biasing force of springs 154 toward thepush cone 150, as shown in FIG. 7 . The push cone 150 is thus pushed bythe outer push rods 134 toward the wheel collets 206. As the push cone150 pushes against the wheel collets 206, the wheel collets 206 aretranslated within the rotating shell 146 towards the inner face 218 ofthe rotating shell 146. Once the second faces 214 of the wheel collets206 engage against the inner face 218 of the rotating shell 146, thewheel collets 206 begin to move towards the snake axis 22. Specifically,the faces 210 of the wheel collets 206 slide along the inner face 202 ofthe push cone 150 and the second faces 214 of the wheel collets 206slide along the inner face 218 of the rotating shell 146, causingadjacent wheel collets 206 to move toward each other against the biasingforce of springs 238, and resulting in movement of the wheel collets 206towards the snake axis 22, as shown in FIGS. 7 and 9 . As the wheelcollets 206 move toward snake axis 22, the wheels 242 move toward snakeaxis 22 until the wheels 242 engage the snake. In this position, thetranslate mechanism 26 is in an engaged state.

While still holding the actuating lever 42 in the selection position,the operator then actuates the motor 34 in the feed direction. The firstpulley 250 transmits torque from the motor 34 to the second pulley 254,which causes the rotating shell 146 of the radial drive mechanism 30 torotate. The rotating shell 146 thus rotates with the rotating shell 146of the radial drive mechanism, causing the wheel collets 206 and wheels242 to rotate about the snake axis 22. Because the wheel axes 246 arenot parallel with the snake axis 22 and because the wheels 242 areengaged against the snake, rotation of the wheels 242 around the snakeaxis 22 causes the snake to move along the snake axis 22 through thedrain cleaning machine 10 and into the drain. As discussed later herein,in some embodiments, movement of the actuating lever 42 to the activatedposition automatically starts the motor 34.

Selection and Operation of the Radial Drive Mechanism 30

Once the operator has fed a complete or sufficient length of the snakeinto the drain, the operator may wish to spin the snake in order to, forexample, break up clogs within the drain. In order to spin the snake,the operator switches the translate mechanism 26 to a disengaged stateand switches the radial drive mechanism 30 to an engaged state. Thus,the operator moves the actuating lever 42 back to the deactivatedposition shown in FIG. 1 . Movement of the actuating lever 42 to thedeactivated position translates the push plate 62 away from theselection plate 82, allowing the springs 154 to bias the outer push rods134 away from the push cone 150, and pushing the outer thrust assembly94 and the outer pins 86 away from the outer push rods 134. Because thepush cone 150 is no longer pushed by the outer push rods 134 against thewheel collets 206, the wheel collets 206 are biased by the springs 238away from each other and away from the snake axis 22, so the wheels 242are no longer engaged against the snake and the translate mechanism isin a disengaged state. As discussed later herein, in some embodiments,movement of the actuating lever 42 to the deactivated positionautomatically stops the motor 34.

The operator then rotates the selection plate 82 to the radial driveposition, as shown in FIGS. 4, 12, and 13 . Rotation of the selectionplate 82 to the radial drive position also causes the outer and innerpin 86, 90, and thus the outer thrust assembly 94, the inner thrustassembly 98, the radial drive mechanism 30, and the translate mechanism26 to all co-rotate with the selection plate 82 about the snake axis 22.The operator then pivots the actuating lever 42 from the non-selectionposition of FIG. 1 to the activated position of FIG. 2 , causing thearms 50 to pivot and the linkage members 54 to pull the arms 58 of thepush plate 62. The arms 58 translate within the windows 294 of the frame14, causing the push plate 62 to move toward the selection plate 82.Because the selection plate 82 is in the radial drive position, theinner pins 90 are not aligned with the inner apertures 70 of the pushplate 62, and the outer pins 86 are aligned with the outer apertures 66,as shown in FIG. 12 .

As the push plate 62 moves toward the selection plate 82, the outer pins86 slip through the outer apertures 66 of the push plate 62 while theinner pins 90 are pushed by the push plate 62 toward the first race 114of the inner thrust assembly 98, as shown in FIG. 13 . Thus, the innerpins 90 push the inner thrust assembly 98, which in turn pushes theinner push rods 166 toward the collets 178, 180. The collets 178, 180are respectively pushed by the inner push rods 166 toward the cross pins186, as shown in FIGS. 14 and 15 . As the collets 178, 180 push againstthe cross pins 186, the sloped faces 190 of the collets slide againstthe cross pins 186 while the collets 178, 180 move toward the snake axis22 until the cross pins abut against the shoulders 192, at which pointthe collets 178, 180 are engaged against the snake such that the radialdrive mechanism 30 is in an engaged state. As the collets 178, 180rotate about the snake axis 22 while clamped on the snake, the snakespins about the snake axis 22 without moving along the snake axis 22.

In some embodiments, the inner push rod 166 that engages with the firstcollet 178 is omitted and the first collet 178 is radially locked orfixed in place, for instance, by a nut and a bolt. Thus, in theseembodiments, only the second collet 180, the moveable collet, ismoveable toward and away from the snake axis 22, when the radial drivemechanism 30 is alternatively switched between the engaged anddisengaged states. In these embodiments, the clamping force exerted onthe snake between the first and second collets 178, 180 is increasedwhen the radial drive mechanism 30 is in the engaged state because theinput force to clamp the snake is no longer divided between the firstand second collets 178, 180. In some embodiments with the locked firstcollet 178, the clamping force exerted on the snake between the firstand second collets 178, 180 is double or more that of the clamping forceof the embodiment when the first collet 178 is moveable. In someembodiments with the locked first collet 178, the clamping force exertedon the snake between the first and second collets 178, 180 is 2.6 timesthe clamping force of the embodiments when the first collet 178 ismoveable, because locking the first collet 178 reduces the frictionbetween the snake and the first and second collets 178, 180.Specifically, all of the input force is transferred into the secondcollet 180 via the single inner push rod 166 engaging the second collet180, which moves the second collet 180 toward the snake axis 22 andtoward the first collet 178. In still other embodiments, the radialdrive mechanism 30 can include more than two collets, with all thecollets except one collet being locked in position, and the one colletbeing moveable toward and away from the snake axis 22 as the radialdrive mechanism 30 is switched between the engaged and disengaged statesto alternatively clamp and release the snake.

Retraction of the Snake from the Drain

Once the operator is satisfied with the operation of the radial drivemechanism 30 to spin the snake within the drain, the operator may wishto retract the snake from the drain. In order to retract the snake fromthe drain, the operator switches the radial drive mechanism 30 to thedisengaged state and switches the translate mechanism 26 to the engagedstate. The operator first turns off the motor 34 and moves the actuatinglever 42 back to the deactivated position shown in FIG. 1 . Movement ofthe actuating lever 42 to the deactivated position translates the pushplate 62 away from the selection plate 82, allowing the springs 182 topull the collets 178, 180 away from the snake axis 22, and pushing theinner push rods 166, the inner thrust assembly 98, and the inner pins 90away from the collets 178, 180. Because the collets 178, 180 are movedaway from the snake axis 22 and disengaged from the snake, the radialdrive mechanism 30 is in a disengaged state.

The operator then switches the translate mechanism 26 to the engagedstate, as described above. However, instead of actuating the motor 34 ina feed direction, the operator actuates the motor 34 in a retractdirection, which is opposite of the feed direction. This causes thewheels 242 to rotate around the snake axis 22, but instead of feedingthe snake into the drain, the wheels 242 cause the snake to move alongthe snake axis 22 through the drain cleaning machine 10 and retract outof the drain.

Manual Feeding and Refraction of the Snake while Engaging the RadialDrive Mechanism 30

In some instances, the operator may want to engage the radial drivemechanism 30 to spin the snake about the snake axis 22 whilesimultaneously feeding or retracting the snake from the drain. In theseinstances, the operator engages the radial drive mechanism 30 asdescribed above, while the motor 34 is actuated. Then, the operatormanually feeds the snake into or pulls the snake out of the snake inlettube 20. As the snake is moved along the snake axis 22 into or out ofthe snake inlet tube 20, the snake is simultaneously spun about thesnake axis 22 by the radial drive mechanism 30, thereby “drilling” thesnake into or out a drain.

While the drain cleaning machine 10 is described above as includingcertain mechanical features that allow for its operation, in someembodiments, the drain cleaning machine 10 may include other mechanicalfeatures that allow for similar operations. Such alternative mechanicalfeatures include, but are not limited to, those that are described inthe multiple embodiments of U.S. patent application Ser. No. 16/535,321,the entire contents of which are herein incorporated by reference.

As shown in FIG. 18 , the drain cleaning machine 10 may include a frame302 and a housing 304. In some embodiments, the drain cleaning machine10 includes a battery receptacle for receiving a battery (e.g., a powertool battery pack) to power the motor 34. The battery receptacle may bea battery compartment covered by a battery door 310 that seals andisolates the battery from the contaminated environment, thus keeping thebattery clean and dry. In some embodiments, the drain cleaning machine10 and the motor 34 may be configured to be optionally be powered by ACpower instead of or in addition to the battery. In some embodiments, thedrain cleaning machine 10 also includes a control panel (i.e., a userinterface) located on the housing 304 or the frame 302. The controlpanel may include one or more input devices (e.g., buttons, dials,knobs, etc.) configured to set different operational parameters of thedrain cleaning machine 10 (e.g., speed of the motor 34, output torque ofthe motor 34, direction of rotation of the motor 34, etc.) as explainedin greater detail below. In some embodiments, the control panel mayinclude a system on/off switch that controls whether power is suppliedto the motor 34 when the actuating lever 42 (or a separate switch oractuator configured to have the same function as the actuating lever 42)is actuated. In other words, when the system on/off switch is off, powermay not be supplied to the motor 34 when the actuating lever 42 (or aseparate switch or actuator configured to have the same function as theactuating lever 42) is actuated. In some embodiments, when the systemon/off switch is “off,” power may not be provided to an electronicprocessor of the drain cleaning machine 10 or the electronic processormay be configured to enter a “sleep” mode. The control panel may alsoinclude one or more output devices (e.g., light emitting diodes (LEDs),sound indicators, etc.) configured to provide information to a user(e.g., to indicate when output torque of the motor 34 exceeds apredetermined threshold that is near a maximum output torque of themotor 34). In some embodiments, the control panel includes a touchscreen that acts as both an input device and an output device. In someembodiments, the control panel is located on a side wall of the housing304 or is mounted on the frame 302.

FIG. 19 illustrates a block diagram of the drain cleaning machine 10according to one example embodiment. As shown in FIG. 19 , the draincleaning machine 10 includes the motor 34 (e.g., a brushless DC motor)that includes a rotor 405 and a stator 410. The motor 34 rotates thefeed and radial drive mechanisms 26, 30 about the snake axis 22 asdescribed previously herein. A battery pack couples to the draincleaning machine 10 via a battery pack interface 415 and provideselectrical power to energize the motor 34. The actuating lever 42 (or aseparate switch or actuator, such as a foot pedal, that includes thesame functionality as the actuating lever 42) may be coupled to anelectronic processor 420 via a switch or sensor to allow the electronicprocessor 420 to determine when the actuating lever 42 has beenactuated.

As shown in FIG. 19 , the drain cleaning machine 10 also includes aswitching network 425, sensors 430, indicators 435 (i.e., the one ormore output devices of the control panel described previously herein), apower input unit 440, and the electronic processor 420. The battery packinterface 415 includes a combination of mechanical (e.g., a battery packreceiving portion including battery support structure) and electricalcomponents (e.g., terminals) configured to and operable for interfacing(e.g., mechanically, electrically, and communicatively connecting) thedrain cleaning machine 10 with a battery pack (e.g., a power toolbattery pack). The battery pack interface 415 transmits the powerreceived from the battery pack to the power input unit 440. The powerinput unit 440 includes combinations of active and passive components(e.g., voltage step-down controllers, voltage converters, rectifiers,filters, etc.) to regulate or control the power received through thebattery pack interface 415 and provided to the electronic processor 420and a wireless communication device 445 that may be included in thedrain cleaning machine 10.

The switching network 425 enables the electronic processor 420 tocontrol the operation of the motor 34. Generally, when the draincleaning machine 10 is operated, electrical current is supplied from thebattery pack interface 415 to the motor 34 via the switching network425. The switching network 425 controls the amount of current availableto the motor 34 and thereby controls the speed and torque output of themotor 34. The switching network 425 may include several field effecttransistors (FETs), bipolar transistors, or other types of electricalswitches, such as six FETs in a bridge arrangement. The electronicprocessor 420, in some embodiments, drives successive switching elementsof the switching network 425 with respective pulse width modulation(PWM) signals to alternately drive stator coils of the stator 410, thusinducing rotation of the rotor 405. The sensors 430 are coupled to theelectronic processor 420 and communicate to the electronic processor 420various signals indicative of different parameters of the drain cleaningmachine 10 and/or the motor 34. The sensors 430 include, for example,one or more current sensors, one or more voltage sensors, one or moretemperature sensors, one or more speed sensors, one or more motorposition sensors (e.g., Hall Effect sensors), etc.

For example, the speed of the motor 34 can be determined using aplurality of Hall Effect sensors to sense the rotational position and/orspeed of the motor 34. In some embodiments, the electronic processor 420controls the switching network 425 in response to signals received fromthe sensors 430. For example, if the electronic processor 420 determinesthat the speed of the motor 34 is increasing too rapidly based oninformation received from the sensors 430, the electronic processor 420may adapt or modify the active switches or switching sequence within theswitching network 425 to reduce the speed of the motor 34. As anotherexample, the electronic processor 420 may be configured to monitor aload/output torque of the motor 34 (e.g., by monitoring current drawn bythe motor 34 as sensed by a current sensor). The electronic processor420 may be configured to determine that the load/output torque isgreater than a predetermined threshold and, in response thereto, controlan output device (i.e., an indicator 435) to provide an indication thatthe load/output torque is greater than the predetermined threshold. Asyet another example, the electronic processor 420 may be configured tomonitor the current provided to the motor 34 (via a current sensor) andan amount of time during which the current is provided to the motor 34.The electronic processor 420 may be further configured to determine thatthe motor 34 is at risk of overheating based on the current and theamount of time during which the current is provided to the motor 34 and,in response thereto, control the power switching elements 425 to ceasedriving the motor 34. In some embodiments, data obtained via the sensors430 may be saved in the electronic processor 420 as tool usage data.

Although the drain cleaning machine 10 is described above as includingmotor positional sensors (e.g., Hall Effect sensors), in someembodiments, the drain cleaning machine 10 may not include Hallsensor(s) to monitor rotational position and/or speed information of themotor 34. Rather, the drain cleaning machine 10 may implement asensor-less design to monitor rotational position and/or speed of themotor 34, for example, by monitoring back electromotive force (EMF) ofthe motor 34 or by using high frequency signal injection.

The indicators 435 are also coupled to the electronic processor 420 andreceive control signals from the electronic processor 420 to turn on andoff or otherwise convey information based on different states of thedrain cleaning machine 10. The indicators 435 (i.e., output devices)include, for example, one or more light-emitting diodes (“LED”), adisplay screen, one or more sound indicators such as speakers orbuzzers, tactile indicators, and/or the like. The indicators 435 can beconfigured to display conditions of, or information associated with, thedrain cleaning machine 10 as explained previously herein. For example,the indicators 435 are configured to indicate measured electricalcharacteristics of the drain cleaning machine 10, the status of thedrain cleaning machine 10, etc.

As described above, the electronic processor 420 is electrically and/orcommunicatively connected to a variety of components of the draincleaning machine 10. In some embodiments, the electronic processor 420includes a plurality of electrical and electronic components thatprovide power, operational control, and protection to the componentswithin the electronic processor 420 and/or the drain cleaning machine10. For example, the electronic processor 420 includes, among otherthings, a processing unit 450 (e.g., a microprocessor, amicrocontroller, or another suitable programmable device), a memory 452,input units 454, and output units 456. The processing unit 450 includes,among other things, a control unit 458, an arithmetic logic unit (“ALU”)460, and a plurality of registers 462 (shown as a group of registers inFIG. 19 ). In some embodiments, the electronic processor 420 isimplemented partially or entirely on a semiconductor (e.g., afield-programmable gate array [“FPGA”] semiconductor) chip, such as achip developed through a register transfer level (“RTL”) design process.

The memory 452 includes, for example, a program storage area 464 a and adata storage area 464 b. The program storage area 464 a and the datastorage area 464 b can include combinations of different types ofmemory, such as read-only memory (“ROM”), random access memory (“RAM”)(e.g., dynamic RAM [“DRAM”], synchronous DRAM [“SDRAM”], etc.),electrically erasable programmable read-only memory (“EEPROM”), flashmemory, a hard disk, an SD card, or other suitable magnetic, optical,physical, or electronic memory devices. The processing unit 450 isconnected to the memory 452 and executes software instructions that arecapable of being stored in a RAM of the memory 452 (e.g., duringexecution), a ROM of the memory 452 (e.g., on a generally permanentbasis), or another non-transitory computer readable medium such asanother memory or a disc. Software included in the implementation ofdrain cleaning machine 10 can be stored in the memory 452 of theelectronic processor 420. The software includes, for example, firmware,one or more applications, program data, filters, rules, and otherexecutable instructions. The electronic processor 420 is configured toretrieve from memory and execute, among other things, instructionsrelated to the control processes and methods described herein. Theelectronic processor 420 is also configured to store power toolinformation on the memory 452. The power tool information stored on thememory 452 may include power tool identification information (e.g.,including a unique identifier of the drain cleaning machine 10) and alsopower tool operational information including information regarding theusage of the drain cleaning machine 10, information regarding themaintenance of the drain cleaning machine 10, parameter information tooperate the drain cleaning machine 10 in a particular mode (e.g.,look-up tables that include speed and or output torque information fordifferent drain cleaning applications), and other information relevantto operating or maintaining the drain cleaning machine 10. In otherconstructions, the electronic processor 420 includes additional, fewer,or different components.

The electronic processor 420 also includes a data connection (e.g., acommunication channel) 466 to couple to the optional wirelesscommunication device 445. In some embodiments, the data connection 466includes one or more wires (and/or a ribbon cable) that are connectedfrom the electronic processor 420 to the wireless communication device445.

FIG. 20 illustrates a block diagram of the wireless communication device445 according to one example embodiment. The wireless communicationdevice 445 enables the electronic processor 420 of the drain cleaningmachine 10 to wirelessly communicate with an external device 605 (seeFIG. 21 ). For example, the electronic processor 420 may wirelesslycommunicate with the external device 605 via the wireless communicationdevice 445 to transmit power tool data (e.g., usage data, configurationdata, maintenance data, and the like) and to receive power toolconfiguration data (e.g., settings/operational parameters for operatingthe drain cleaning machine 10 in a particular mode or for a particularapplication and the like). As shown in FIG. 20 , the wirelesscommunication device 445 includes an electronic processor 505, a memory510, and a wireless transceiver 515. The electronic processor 505 andthe memory 510 may be similar to like-named components described abovewith respect to the drain cleaning machine 10. The wireless transceiver515 may include an antenna that is configured to operate with thewireless transceiver 515 to send and receive wireless messages to andfrom the external device 605 and the electronic processor 505. Thememory 510 can store instructions to be implemented by the electronicprocessor 505 and/or may store data related to communications betweenthe drain cleaning machine 10 and the external device 605 or the like.The electronic processor 505 of the wireless communication device 445controls wireless communications between the drain cleaning machine 10and the external device 605. For example, the electronic processor 505buffers incoming and/or outgoing data, communicates with the electronicprocessor 420 of the drain cleaning machine 10, and determines thecommunication protocol and/or settings to use in wirelesscommunications. In other words, the wireless communication device 445 isconfigured to receive data from the electronic processor 420 of thedrain cleaning machine 10 and relay the data to the external device 605via the wireless transceiver 515. In a similar manner, the wirelesscommunication device 445 is configured to receive information (e.g.,configuration and programming information) from the external device 605via the wireless transceiver 515 and relay the information to theelectronic processor 420 of the drain cleaning machine 10.

In the illustrated embodiment, the wireless communication device 445 isa Bluetooth® controller. The Bluetooth® controller communicates with theexternal device 605 employing the Bluetooth® protocol. Therefore, in theillustrated embodiment, the external device 605 and the drain cleaningmachine 10 are within a communication range (i.e., in proximity) of eachother while they exchange data. In other embodiments, the wirelesscommunication device 445 communicates using other protocols (e.g.,Wi-Fi, cellular protocols, etc.) over a different type of wirelessnetwork. For example, the wireless communication device 445 may beconfigured to communicate via Wi-Fi through a wide area network such asthe Internet or a local area network, or to communicate through apiconet (e.g., using infrared or NFC communications). As anotherexample, the wireless communication device 445 may be configured tocommunicate over a cellular network. The communication via the wirelesscommunication device 445 may be encrypted to protect the data exchangedbetween the drain cleaning machine 10 and the external device 605 (ornetwork) from third parties. In some embodiments, the wirelesscommunication device 445 includes a multi-band/multi-protocol antenna.In other words, a single antenna may be used for multiple transceiversthat use different communication protocols (e.g., Bluetooth®, Wi-Fi,GPS, cellular, etc.). In such embodiments, each transceiver mayselectively connect to the antenna via a respective switch, powerdivider, or frequency dependent impedance network.

In some embodiments, the drain cleaning machine 10 shown in FIG. 19and/or the wireless communication device 445 shown in FIG. 20 includemore or fewer components than those shown in FIGS. 19 and 20 . Forexample, the wireless communication device 445 may include anaccelerometer, a gyroscope, and/or subscriber identity module (SIM)card. As another example, the wireless communication device 445 mayinclude a backup power source (e.g., a coin cell battery, another typeof battery cell, a capacitor, or another energy storage device), areal-time clock (RTC), and/or an indicator light. As yet anotherexample, the drain cleaning machine 10 may not include the wirelesscommunication device 445 and may instead be controlled solely via thecontrol panel described previously herein.

FIG. 21 illustrates a communication system 600 that includes the draincleaning machine 10 and the external device 605 that may wirelesslycommunicate with each other according to some embodiments as describedpreviously herein. The external device 605 may also communicate with aremote server 610 and may receive configuration and/or settings for thedrain cleaning machine 10, or may transmit operational data or otherpower tool status information to the remote server 610. In someembodiments, the external device 605 may communicate with the draincleaning machine 10 and/or the remote server 610 via a wired connection.

The external device 605 may be, for example, a laptop computer, a tabletcomputer, a smartphone, a cellphone, or another electronic devicecapable of communicating wirelessly with the drain cleaning machine 10and providing a user interface. The external device 605 provides theuser interface and allows a user to access and interact with toolinformation. The external device 605 can receive user inputs todetermine operational parameters/settings, enable or disable features,and the like. The user interface of the external device 605 provides aneasy-to-use interface for the user to control and customize operation ofthe drain cleaning machine 10 (see FIGS. 28 and 29 ) and can be used incombination with or in place of a control panel located on the frame 302or the housing 304 of the drain cleaning machine 10.

As shown in FIG. 22 , the external device 605 includes an electronicprocessor 705, a short-range transceiver 710, a network communicationinterface 715, a touch display 720, and a memory 725. The externaldevice electronic processor 705 is coupled to the short-rangetransceiver 710, the network communication interface 715, the touchdisplay 720, and the memory 725. The short-range transceiver 710, whichmay include or is coupled to an antenna (not shown), is configured tocommunicate with the wireless transceiver 515 of the drain cleaningmachine 10. The short-range transceiver 710 can also communicate withother electronic devices. The network communication interface 715communicates with a network to enable communication with the remoteserver 610. In some embodiments, the network may be an Internet network,a cellular network, another network, or a combination thereof.

The memory 725 of the external device 605 also stores core applicationsoftware 730. The electronic processor 705 accesses and executes thecore application software 730 in the memory 725 to launch a controlapplication that receives inputs from the user for the configuration andoperation of the drain cleaning machine 10. The short-range transceiver710 of the external device 605 is compatible with the wirelesstransceiver 515 of the drain cleaning machine 10 and may include, forexample, a Bluetooth® communication controller. The short-rangetransceiver 710 allows the external device 605 to communicate with thedrain cleaning machine 10.

The remote server 610 may store data obtained by the external device 605from, for example, the drain cleaning machine 10. The remote server 610may also provide additional functionality and services to the user. Inone embodiment, storing the information on the remote server 610 allowsa user to access the information from a plurality of different devicesand locations (e.g., a remotely located desktop computer). In anotherembodiment, the remote server 610 may collect information from varioususers regarding their power tool devices and provide statistics orstatistical measures to the user based on information obtained from thedifferent power tools. For example, the remote server 610 may providestatistics regarding the experienced efficiency of the drain cleaningmachine 10, typical usage of the drain cleaning machine 10, and otherrelevant characteristics and/or measures of the drain cleaning machine10. In some embodiments, the drain cleaning machine 10 may be configuredto communicate directly with the server 610 through an additionalwireless interface or with the same wireless interface that the draincleaning machine 10 uses to communicate with the external device 605.

Turning to the motor functionality of the drain cleaning machine 10,contrary to current drain cleaning machines that include AC inductionmotors with merely an on/off switch and without variable speed control,in some embodiments, the motor 34 of the drain cleaning machine 10 is abrushless DC motor. Using a brushless DC motor in the drain cleaningmachine 10 provides a number of advantages over using AC inductionmotors that do not include variable speed control. For example, unlikean AC induction motor, the speed of the brushless DC motor 34 may beeasily varied such that the snake can be radially rotated/spun atdifferent speeds depending on different applications (e.g., differentclogs, different types of cable being used as the snake, differentaccessories attached to the snake, etc.). Also unlike an AC inductionmotor, the output torque of the brushless DC motor 34 may be easilyvaried by providing more or less current to the brushless DC motor 34 byadjusting a pulse width modulation (PWM) signal that controls the powerswitching elements 425 that control whether current is provided to thebrushless DC motor 34. Accordingly, the snake can be radiallyrotated/spun at different output torques depending on differentapplications (e.g., clogs of different size pipes, different distancesin which the snake is to be inserted into a pipe, different types ofcable being used as the snake, different accessories attached to thesnake, etc.)

However, while brushless DC motors have at least the above-notedadvantages over AC induction motors, the typical speed-torque curve ofan AC induction motor is different than the typical speed-torque curveof a brushless DC motor. In particular, while AC induction motors usedin drain cleaning machines typically maintain relatively constant speedunder variable loads (see FIG. 23 ), a speed of a brushless DC motortends to slow down proportionately as the load experienced by thebrushless DC motor increases (see FIG. 24 ). The slowing down of abrushless DC motor as the load increases may give the user theperception that the brushless DC motor is overloaded and that a draincleaning machine using the brushless DC motor is not strong enough tocomplete a drain cleaning task. Thus, there is a technological problemwith drain cleaning machines. Accordingly, one of the goals of thisapplication is to address this technological problem by controlling thebrushless DC motor 34 to function similarly to an AC induction motor insome situations. For example, the electronic processor 420 of the draincleaning machine 10 may control the power switching elements 425 tocause a rotational speed under a variable load of the brushless DC motor34 to behave approximately the same as that of an alternating current(AC) induction motor of approximately the same size as the brushless DCmotor 34 by implementing speed clipping in an operating range when aload experienced by the brushless DC motor 34 is less than or equal to apredetermined load.

FIG. 23 illustrates a graph of a speed versus torque curve 805 for anexample AC induction motor. In FIG. 23 , speed is normalized such that asynchronous speed of the example AC induction motor is represented by1.0 on the vertical axis, and torque is normalized such that a stalltorque of the example AC induction motor is represented by 1.0 on thehorizontal axis. As indicated by the curve 805 in FIG. 23 , for much ofthe operating range of the example AC induction motor, a speed of themotor is approximately equal to the synchronous speed (i.e., minimalslip) of the example AC induction motor. For example, the speed of theexample AC induction motor does not decrease below 90% of thesynchronous speed until the load of the example AC induction motor hasincreased such that the torque of the example AC induction motor hasreached approximately 75% of the stall torque. In other words, theexample AC induction motor maintains relatively constant speed undervariable loads within most of its operating range.

On the other hand, FIG. 24 illustrates a graph of a speed versus torquecurve 905 for an ideal brushless DC motor. Similar to FIG. 23 , in FIG.24 , speed is normalized such that a base, no-load speed of the idealbrushless DC motor is represented by 1.0 on the vertical axis, andtorque is normalized such that a stall torque of the ideal brushless DCmotor is represented by 1.0 on the horizontal axis. As indicated by thecurve 905 in FIG. 24 , a speed of the ideal brushless DC motor isinversely proportional to a torque of the ideal brushless DC motor. Inother words, as a load experienced by the ideal brushless DC motorincreases and increases the torque of the motor, the speed of the motorproportionately decreases. Thus, unlike the example AC induction motordescribed above, a speed of the ideal brushless DC motor does not remainapproximately constant under variable loads within most of its operatingrange.

FIG. 25 illustrates a graph of the speed versus torque curve 805 for theexample AC induction motor compared to a speed versus torque curve 1005of an ideal brushless DC motor that is comparable in size to the exampleAC induction motor. Similar to FIG. 23 , in FIG. 25 , speed isnormalized such that a synchronous speed of the example AC inductionmotor and a base, no-load speed of the ideal brushless DC motor arerepresented by 1.0 on the vertical axis. As indicated by the graph ofFIG. 25 , the synchronous speed and the base, no load speed areapproximately equal. In FIG. 25 , torque is normalized such that a stalltorque of the example AC induction motor is represented by 1.0 on thehorizontal axis. As indicated by the graph of FIG. 25 , the stall torqueof the ideal brushless DC motor is approximately four times that of theAC induction motor and is represented by 4.0 on the horizontal axis.However, both motors have a typical operating range 1010 between up to anormalized speed of approximately 1.0 and a normalized torque ofapproximately 1.0 as indicated by the graph of FIG. 25 . As illustratedby the curves 805 and 1005 in FIG. 25 , within the typical operatingrange 1010, the AC induction motor maintains a speed closer to anormalized speed of 1.0 than the ideal brushless DC motor. As explainedpreviously herein, this difference between the operation of thebrushless DC motor and the AC induction motor (i.e., the slowing down ofa brushless DC motor as the load increases) may give the user theperception that the brushless DC motor is overloaded and that a draincleaning machine 10 using the brushless DC motor is not strong enough tocomplete a drain cleaning task.

However, designing the brushless DC motor for slight overspeed andelectronically limiting the speed of (i.e., speed clipping) thebrushless DC motor causes the brushless DC motor to function similarlyto an AC induction motor in the typical operating range 1010. Asindicated by the speed versus torque curve 1105 in FIG. 26 , thebrushless DC motor is designed for slight overspeed at a base, no-loadspeed (e.g., a normalized base, no-load speed of approximately 1.1). Thespeed versus torque curve 1105 is otherwise similar to the speed versustorque curve 1005 of FIG. 25 . In a speed clipping range 1110 where thespeed of the AC induction motor is approximately constant regardless oftorque, the electronic processor 420 may be configured to electronicallyclip the speed of the brushless DC motor to maintain the speed at anormalized speed of 1.0 (see speed-clipped portion 1115 of the curve1105 in FIG. 26 ). For example, the electronic processor 420 may controla PWM signal provided to the power switching elements 425 to reduce theamount of current provided to the motor 34 such that the motor 34rotates at less than its maximum speed when the torque/load of thebrushless DC motor 34 (as determined by monitoring current drawn by thebrushless DC motor 34) is less than or equal to a predeterminedtorque/load 1120 (i.e., a rated load). Accordingly, a speed versustorque curve 1105 of the brushless DC motor will approximately match thespeed versus torque curve 805 of the AC induction motor as shown in thegraph of FIG. 26 . In fact, as shown in FIG. 26 , speed performance ofthe brushless DC motor is equal to or better than that of the ACinduction motor through the entire typical operating range 1010 of themotors.

By electronically implementing speed clipping to produce the speedversus torque curve 1105 for the brushless DC motor 34, the electronicprocessor 420 causes the motor 34 to provide constant speed from no loadup until a predetermined load/torque at which point the speed of themotor 34 begins to decrease. Such a design causes the brushless DC motor34 to behave similarly to an AC induction motor during an operatingrange of various loads/torques and thus addresses the technical problemof the user perceiving bog down of the brushless DC motor describedpreviously herein.

FIG. 27 is a flowchart of a method 1200 implemented by the electronicprocessor 420 to electronically control a speed of the brushless DCmotor 34 using speed clipping to produce the speed versus torque curve1105 of FIG. 26 . In response to receiving a signal indicating that themotor 34 should be turned on (e.g., from the actuating lever 42), atblock 1205, the electronic processor 420 implements speed clipping tocontrol the power switching elements 425 to drive the brushless DC motor34 at an approximately constant speed. During operation of the motor 34,at block 1210, the electronic processor 420 monitors a current drawn bythe brushless DC motor 34 to determine a load/output torque of thebrushless DC motor 34. At block 1215, the electronic processor 420determines whether the load/output torque is greater than apredetermined load/output torque (i.e., a rated load). In response todetermining that the load/output torque is not greater than thepredetermined load/output torque, the method 1200 proceeds back to block1205 and the electronic processor 420 continues to implement speedclipping. On the other hand, when the load/output torque is greater thanthe predetermined load/output torque, at block 1220, the electronicprocessor 420 ceases implementing speed clipping and controls the powerswitching elements 425 to allow the brushless DC motor 34 to operateaccording to its typical speed versus torque curve (see curve 1005 inFIG. 25 or the portion of curve 1105 in FIG. 26 that is located outsideof the speed clipping range 1110). In other words, the electronicprocessor 420 controls the power switching elements 425 to drive thebrushless DC motor 34 at a speed that proportionately decreases as theload/output torque of the brushless DC motor 34 increases.

After executing block 1220, the method 1200 proceeds back to block 1210where the electronic processor 420 continues to monitor the currentdrawn by the brushless DC motor 34 and determine whether to implementspeed clipping based on the decisions made at block 1215. For example,if the load/output torque of the brushless DC motor 34 decreases belowthe predetermined load/output torque as determined by the electronicprocessor 420 at block 1215, the method 1200 proceeds back to block 1205where the electronic processor 420 re-implements speed clipping.

As indicated by FIGS. 26 and 27 , the electronic processor 420 isconfigured to control the switching elements 425 differently indifferent operating ranges of the brushless DC motor 34. In particular,in a first operating range when a load experienced by the brushless DCmotor 34 is less than or equal to the predetermined load 1120 (i.e., aspeed clipping range 1110 shown in FIG. 26 ), the electronic processor420 is configured to control the power switching elements 425 to drivethe brushless DC motor 34 at an approximately constant speed regardlessof the load experienced by the brushless DC motor 34. In a secondoperating range when the load experienced by the brushless DC motor 34is greater than the predetermined load 1120 (i.e., a non-speed clippingrange within the typical operating range 1010 shown in FIG. 26 ), theelectronic processor 420 is configured to control the power switchingelements 425 to drive the brushless DC motor 34 at a decreasing speed asthe load experienced by the brushless DC motor 34 increases.

In some embodiments, the approximately constant speed at which theelectronic processor 420 controls the motor 34 to operate within thespeed clipping range 1110 is user selectable via at least one of a firstuser interface located on the housing 304 or the frame 302 of the draincleaning machine 10 (e.g., a control panel as described previouslyherein) and a second user interface provided on the external device 605that is configured to wirelessly communicate with the wirelesstransceiver 515 of the drain cleaning machine 10 (see FIG. 28 ).

In addition to the speed of the motor 34 being user selectable, in someembodiments, the electronic processor 420 is additionally oralternatively configured to control the power switching elements 425 todrive the brushless DC motor 34 to provide an output torque that is userselectable. Like a user-selectable speed of the motor 34, the outputtorque may be user selectable via at least one of a first user interfacelocated on the housing 304 or the frame 302 of the drain cleaningmachine 10 (e.g., a control panel as described previously herein) and asecond user interface provided on the external device 605 that isconfigured to wirelessly communicate with the wireless transceiver 515of the drain cleaning machine 10 (see FIG. 28 ). For the sake ofbrevity, the below explanation describes the second user interface ofthe external device 605, but, in some embodiments, the belowfunctionality and control may additionally or alternatively beimplemented on the first interface of the drain cleaning machine 10(e.g., the control panel described previously herein).

FIG. 28 illustrates an example user interface 1305 that may be displayedon the touch display 720 of the external device 605 according to oneembodiment. In other embodiments, the user interface 1305 mayalternatively or also be displayed on a touch display that is mounted onor integrated into the drain cleaning machine 10. The user interface1305 may include a user selectable speed setting 1310 and a userselectable torque/current maximum setting 1315. The speed setting 1310may include an on/off toggle 1320 to allow the user to decide whether tomanually select the speed setting 1310 (by selecting “on”) or whetherthe drain cleaning machine 10 will operate at a default speed (byselecting “off”). To manually select the speed setting 1310, the usermay adjust a slider 1325 within a range of motor speeds as shown in FIG.28 . The range of motor speeds is merely an example and may be differentin other embodiments. In some embodiments, the user may select the motorspeed in other manners such as by entering a value into a textbox. Thespeed setting 1310 allows the user to set a speed at which the motor 34is configured to operate during the speed clipping range of 1110 of FIG.26 . The torque/current maximum setting 1315 allows the user to set amaximum current that will be provided to the motor 34 during operation.Similar to the speed setting 1310, the torque/current maximum setting1315 includes an on/off toggle 1330 and a slider 1335.

After the user selects the settings 1310 and 1315 as desired, a“transmit settings” button 1340 may be pressed by the user to transmitthe user selected settings to the drain cleaning machine 10 for use bythe electronic processor 420. As shown in FIG. 28 , the user interface1305 also includes an “unpair” button 1345 to allow the external device605 to communicatively unpair with the drain cleaning machine 10 toallow the external device 605 to communicatively pair with other draincleaning machines or electronic devices.

As described previously herein, allowing the user to select differentspeeds and maximum torques/currents of the drain cleaning machine 10 maybe useful when the drain cleaning machine 10 is used in differentapplications (e.g., different clogs, clogs of different size pipes,different distances in which the snake is to be inserted into a pipe,different types of cable being used as the snake, different accessoriesattached to the snake, etc.). For example, if the user is using thedrain cleaning machine 10 to attempt to unclog a relatively largediameter pipe with a small cable (i.e., snake), the cable may becometangled (i.e., rats nest) easily. Thus, the user may desire to limit thespeed or limit the maximum torque/current of the motor 34 that radiallyrotates/spins the cable. On the other hand, if the user is using thedrain cleaning machine 10 to attempt to unclog a relatively smalldiameter pipe with the small cable, the cable may not become as tangledas easily. Thus, the user may desire for the drain cleaning machine 10to provide maximum possible torque/current to radially rotate/spin thecable break through the clog. As another example, if the user plans toextend the cable a relatively long distance (e.g., twenty feet) into apipe, the user may desire a lower maximum torque/current setting thanwhen the cable is only planned to be extended a shorter distance (e.g.,two feet) into the pipe.

In some embodiments, the user may not be aware of appropriate settingsfor speed and maximum torque/current based on a given application. Thus,in some embodiments, the external device 605 provides a user interface1405 in FIG. 29 that aids the user in selecting a recommended speed andmaximum torque/current based on different characteristics of theapplication in which the drain cleaning machine 10 will be used. Forexample, the user interface 1405 includes parameter assist blocks 1410,1415, 1420, and 1425 where the user may respectively enter differentcharacteristics of the application in which the drain cleaning machine10 will be used by selecting the arrow to the right of each parameterassist block. In some embodiments, the pipe size parameter assist block1410 allows the user to enter a diameter of the pipe into which thecable will be inserted. In some embodiments, the insertion distanceparameter assist block 1415 allows the user to enter a distance that thecable is expected to be inserted into the pipe. In some embodiments, thecable type parameter assist block 1420 allows the user to enter at leastone of a type of material of the cable that is being used as the snakeand a thickness/diameter of the cable. In some embodiments, the cableaccessory parameter assist block 1425 allows the user to select a typeof accessory that is attached to a head or other portion of the cable(e.g., cutters, knockers, opening tools, straight augers, chainknockers, a flue brush, and retrieving tools).

Once the characteristics of a particular application are entered, theuser may press the button 1430 and, in response thereto, the electronicprocessor 705 of the external device 605 may generate recommended speedand torque/current settings based on the entered characteristics. Insome embodiments, the electronic processor 705 may access alocally-stored or remotely-stored look-up table that providesrecommended settings based on the entered characteristics. In someembodiments, the electronic processor 705 controls the touch display 720to re-display the user interface 1305 with the recommended values of thesettings 1310 and 1315 shown on the user interface 1305 along with anindication that the values are the recommended settings. In someembodiments, the user is able to make adjustments to the recommendedsettings, if desired, by interacting with the sliders 1325 and 1335 asexplained previously herein. In some embodiments, the recommendedsettings are determined so as to reduce the likelihood of thecable/snake tangling (i.e., rats nesting) as explained previouslyherein. In some embodiments, the recommended settings are determined soas to provide higher maximum torque/current in situations where tanglingof the cable is less likely than in situations where tangling of thecable is more likely as explained previously herein.

In some embodiments, the electronic processor 705 does not require thatcharacteristics be entered in every parameter assist block 1410, 1415,1420, and 1425 shown in FIG. 29 and may provide recommended settingsbased on characteristics entered in one or more of the parameter assistblocks 1410, 1415, 1420, and 1425. In some embodiments, the userinterface 1405 may include fewer or additional parameter assist blocksbased on which the electronic processor 705 determines the recommendedsettings. In some embodiments, the user interface 1305 may allow theuser to control additional settings of the drain cleaning machine 10such as turning an integrated work light on or off.

Although the invention has been described in detail with reference tocertain preferred embodiments, variations and modifications exist withinthe scope and spirit of one or more independent aspects of the inventionas described.

We claim:
 1. A system comprising: an external device including atransceiver configured to communicate with a drain cleaning machine, auser interface configured to receive, via a first user input,information regarding at least one of the group consisting of a type ofcable being used as a snake of the drain cleaning machine, a type ofaccessory attached to the snake, a diameter of a pipe into which thesnake is to be inserted, a distance that the snake is expected to beinserted into the pipe, or combinations thereof, a first electronicprocessor configured to determine a recommended speed, a recommendedoutput torque, or both based on the at least one of the group consistingof the type of cable being used as the snake of the drain cleaningmachine, the type of accessory attached to the snake, the diameter ofthe pipe into which the snake is to be inserted, the distance that thesnake is expected to be inserted into the pipe, or combinations thereof,and transmit, via the transceiver, the recommended speed, therecommended output torque, or both to the drain cleaning machine; andthe drain cleaning machine for moving the snake in a drain, the draincleaning machine including a snake passage defining a snake axis; abrushless direct current (DC) motor configured to rotate the snake aboutthe snake axis; power switching elements configured to control an amountof current provided to the brushless DC motor; a wireless communicationdevice configured to communicate with the external device; and a secondelectronic processor coupled to the power switching elements and to thewireless communication device, the second electronic processorconfigured to receive, via the wireless communication device, therecommended speed, the recommended output torque, or both from theexternal device, determine motor positional information of the brushlessDC motor, and control the power switching elements to drive thebrushless DC motor based at least partially on (i) the motor positionalinformation and (ii) the recommended speed, the recommended outputtorque, or both.
 2. The system of claim 1, wherein the first electronicprocessor is configured to control the user interface to display therecommended speed, the recommended output torque, or both.
 3. The systemof claim 2, wherein the first electronic processor is configured toreceive, via the user interface, a second user input that adjusts therecommended speed, the recommended output torque, or both.
 4. The systemof claim 1, wherein the first electronic processor is configured todetermine that the recommended speed, the recommended output torque, orboth is decreased as a difference increases between size of the snakeand the diameter of the pipe into which the snake is to be inserted. 5.The system of claim 1, wherein the first electronic processor isconfigured to determine that the recommended output torque is decreasedas a drain cleaning situation indicated by the information regarding atleast one of the group consisting of the type of cable being used as thesnake of the drain cleaning machine, the type of accessory attached tothe snake, the diameter of the pipe into which the snake is to beinserted, the distance that the snake is expected to be inserted intothe pipe, or combinations thereof is more likely to produce tangling ofthe snake.
 6. The system of claim 5, wherein the first electronicprocessor is configured to determine that the recommended output torqueis decreased as the distance that the snake is expected to be insertedinto the pipe increases.
 7. The system of claim 1, wherein the secondelectronic processor is configured to: in a first operating range when aload experienced by the brushless DC motor is less than or equal to apredetermined load, control the power switching elements to drive thebrushless DC motor at the recommended speed regardless of the loadexperienced by the brushless DC motor, and in a second operating rangewhen the load experienced by the brushless DC motor is greater than thepredetermined load, control the power switching elements to drive thebrushless DC motor at a decreasing speed as the load experienced by thebrushless DC motor increases, wherein the decreasing speed is less thanthe recommended speed.
 8. The system of claim 1, wherein the draincleaning machine includes an output device coupled to the secondelectronic processor, and wherein the second electronic processor isconfigured to monitor an output torque of the brushless DC motor;determine that the output torque is greater than a predeterminedthreshold; and in response to determining that the output torque isgreater than the predetermined threshold, control the output device toprovide an indication that the output torque is greater than thepredetermined threshold.
 9. A method for controlling a drain cleaningmachine to move a snake in a drain, the method comprising: receiving,with a user interface of an external device and via a first user input,information regarding at least one of the group consisting of a type ofcable being used as the snake of the drain cleaning machine, a type ofaccessory attached to the snake, a diameter of a pipe into which thesnake is to be inserted, a distance that the snake is expected to beinserted into the pipe, or combinations thereof; determining, with afirst electronic processor of the external device, a recommended speed,a recommended output torque, or both based on the at least one of thegroup consisting of the type of cable being used as the snake of thedrain cleaning machine, the type of accessory attached to the snake, thediameter of the pipe into which the snake is to be inserted, thedistance that the snake is expected to be inserted into the pipe, orcombinations thereof; transmitting, with the first electronic processorvia a transceiver of the external device, the recommended speed, therecommended output torque, or both to the drain cleaning machine;receiving, with a second electronic processor of the drain cleaningmachine via a wireless communication device of the drain cleaningmachine, the recommended speed, the recommended output torque, or bothfrom the external device, the drain cleaning machine including a snakepassage defining a snake axis, a brushless direct current (DC) motorconfigured to rotate the snake about the snake axis, and power switchingelements configured to control an amount of current provided to thebrushless DC motor; determining, with the second electronic processor,motor positional information of the brushless DC motor; and controlling,with the second electronic processor, the power switching elements todrive the brushless DC motor based at least partially on (i) the motorpositional information and (ii) the recommended speed, the recommendedoutput torque, or both.
 10. The method of claim 9, further comprising:controlling, with the first electronic processor, the user interface todisplay the recommended speed, the recommended output torque, or both;and receiving, with the first electronic processor and via the userinterface, a second user input that adjusts the recommended speed, therecommended output torque, or both.
 11. The method of claim 9, whereindetermining the recommended speed, the recommended output torque, orboth includes determining, with the first electronic processor, that therecommended speed, the recommended output torque, or both is decreasedas a difference increases between size of the snake and the diameter ofthe pipe into which the snake is to be inserted.
 12. The method of claim9, wherein determining the recommended speed, the recommended outputtorque, or both includes determining, with the first electronicprocessor, that the recommended output torque is decreased as a draincleaning situation indicated by the information regarding at least oneof the group consisting of the type of cable being used as the snake ofthe drain cleaning machine, the type of accessory attached to the snake,the diameter of the pipe into which the snake is to be inserted, thedistance that the snake is expected to be inserted into the pipe, orcombinations thereof is more likely to produce tangling of the snake.13. The method of claim 12, wherein determining that the recommendedoutput torque is decreased as the drain cleaning situation is morelikely to produce tangling of the snake includes determining, with thefirst electronic processor, that the recommended output torque isdecreased as the distance that the snake is expected to be inserted intothe pipe increases.
 14. The method of claim 9, further comprising: in afirst operating range when a load experienced by the brushless DC motoris less than or equal to a predetermined load, controlling, with thesecond electronic processor, the power switching elements to drive thebrushless DC motor at the recommended speed regardless of the loadexperienced by the brushless DC motor, and in a second operating rangewhen the load experienced by the brushless DC motor is greater than thepredetermined load, controlling, with the second electronic processor,the power switching elements to drive the brushless DC motor at adecreasing speed as the load experienced by the brushless DC motorincreases, wherein the decreasing speed is less than the recommendedspeed.
 15. A drain cleaning machine for moving a snake in a drain, thedrain cleaning machine comprising: a snake passage defining a snakeaxis; a brushless direct current (DC) motor configured to rotate thesnake about the snake axis; power switching elements configured tocontrol an amount of current provided to the brushless DC motor; a userinterface configured to receive, via a first user input, informationregarding at least one of the group consisting of a type of cable beingused as the snake, a type of accessory attached to the snake, a diameterof a pipe into which the snake is to be inserted, a distance that thesnake is expected to be inserted into the pipe, or combinations thereof,an electronic processor coupled to the power switching elements and tothe user interface, the electronic processor configured to determine arecommended speed, a recommended output torque, or both based on the atleast one of the group consisting of the type of cable being used as thesnake, the type of accessory attached to the snake, the diameter of thepipe into which the snake is to be inserted, the distance that the snakeis expected to be inserted into the pipe, or combinations thereof,determine motor positional information of the brushless DC motor, andcontrol the power switching elements to drive the brushless DC motorbased at least partially on (i) the motor positional information and(ii) the recommended speed, the recommended output torque, or both. 16.The drain cleaning machine of claim 15, wherein the electronic processoris configured to: control the user interface to display the recommendedspeed, the recommended output torque, or both; and receive, via the userinterface, a second user input that adjusts the recommended speed, therecommended output torque, or both.
 17. The drain cleaning machine ofclaim 15, wherein the electronic processor is configured to determinethat the recommended speed, the recommended output torque, or both isdecreased as a difference increases between size of the snake and thediameter of the pipe into which the snake is to be inserted.
 18. Thedrain cleaning machine of claim 15, wherein the electronic processor isconfigured to determine that the recommended output torque is decreasedas a drain cleaning situation indicated by the information regarding atleast one of the group consisting of the type of cable being used as thesnake of the drain cleaning machine, the type of accessory attached tothe snake, the diameter of the pipe into which the snake is to beinserted, the distance that the snake is expected to be inserted intothe pipe, or combinations thereof is more likely to produce tangling ofthe snake.
 19. The drain cleaning machine of claim 15, wherein theelectronic processor is configured to: in a first operating range when aload experienced by the brushless DC motor is less than or equal to apredetermined load, control the power switching elements to drive thebrushless DC motor at the recommended speed regardless of the loadexperienced by the brushless DC motor, and in a second operating rangewhen the load experienced by the brushless DC motor is greater than thepredetermined load, control the power switching elements to drive thebrushless DC motor at a decreasing speed as the load experienced by thebrushless DC motor increases, wherein the decreasing speed is less thanthe recommended speed.
 20. The drain cleaning machine of claim 15,further comprising an output device coupled to the electronic processor,and wherein the electronic processor is configured to monitor an outputtorque of the brushless DC motor; determine that the output torque isgreater than a predetermined threshold; and in response to determiningthat the output torque is greater than the predetermined threshold,control the output device to provide an indication that the outputtorque is greater than the predetermined threshold.